<?php

App::uses('AppController', 'Controller');

class UsersController extends AppController {

	var $name = 'Users';

	var $allowActions = array( 'login', 'logout' );
	var $components = array( 'Crypter' );

	var $uses = array('User');


	/**
	 * Add
	 *
	 * @param type  meta
	 * @return type  meta
	 * @access public
	 */
	function admin_add($id = null)
	{
		if(!empty($this->request->data))
		{
			$data = &$this->request->data['User'];

			// Kiem tra password cu
			$oldpass = false;
			if( empty( $data['password'] )) {
				if(!empty($data['oldpass'])) {
					$data['password'] = $data['oldpass'];
					$oldpass = true;
				} else {
					$this->User->validationErrors['password'] = array('Password not empty.');
				}
			}

			// Kiem tra errors
			$this->User->set($data);
			$errors = $this->User->invalidFields();

			//Save
			if(empty($errors)) {
				// Kiem tra password
				if(!$oldpass)
					$data['password'] = $this->Auth->password($data['password']);

				// kiem tra edit
				if( empty($data['id']) ) {
					unset($data['id']);
				}

				if($this->User->save($data, false)) {

					$u = $this->Auth->user();
					$u['password'] = $data['password'];
					$u['username'] = $data['username'];
					$u['full_name'] = $data['full_name'];
					$this->Auth->login($u);

					$this->Session->setFlash('Sửa thông tin thành công.', 'success');
					$this->redirect('/admin/users/add/'. $this->User->id);
				} else {
					$this->Session->setFlash('Sửa thông tin thất bại. Vui lòng xem lại thông tin bên dưới', 'error');
				}
			} else {
				$this->Session->setFlash('Sửa thông tin thất bại.', 'error');
			}
		}

		// Truong hop show edit
		if( !empty( $id )) {
			$info = $this->User->getInfoById($id);

			if(!empty($info)) {
				$info['User']['oldpass'] = $info['User']['password'];
				$info['User']['password'] = '';
				$this->request->data = $info;
			}
		}

		$this->render('/Users/profile');
	}



	/**
     * Login
     *
     * @param type  meta
     * @return type  meta
     * @access public
     */
    function admin_login($usernameregis = '', $passwordregis = '')
    {
    	$this->layout = 'login';
        $u = $this->Auth->user();

        if( !empty($u ) )
        {
            $this->redirect('/admin');
        }

        if( !empty($_GET['denied']) && $_GET['denied'] == 1 )
            $this->Session->setFlash( __('Bạn không được phép truy cập vào các chức năng hệ thống.', 'error'));

        //--------------------------------------------------------------------//
        // Check login info
        //--------------------------------------------------------------------//
        if( !empty( $this->request->data ) )
        {
            // update password
            $this->request->data['User']['password'] =
                $this->Auth->password( $this->request->data['User']['password'] );
//pr($this->request->data);
//exit;
            $user  = $this->User->validateLogin($this->request->data);

            if (!empty( $user ) )
            {
                // create full name
                $this->Auth->login($user['User']);

                // create security string
                $this->Session->write('security_key', $this->Crypter->alphaID( strtotime(date("Y-m-d H:i:s")) ) );

                //$comp = $Company->read( array( 'id', 'name', 'address', 'hotline', 'phone', 'website', 'logo' ),  $comp_id );

                if( !empty($user ) )
                {
                    $this->redirect('/admin');
                }
            }
            else
            {
                $this->request->data['User']['password'] = "";
                $this->Session->setFlash( __('Đăng nhập thất bại. Xin kiểm tra lại thông tin đăng nhập.'), 'error');
             }
        }

		$this->render('/Users/login');
    }

	/**
     * Logout
     *
     * @param type  meta
     * @return type  meta
     * @access public
     */
    function admin_logout()
    {
       // $this->AuthExtension->logout();
        $this->Session->destroy();
        if( !empty($_GET['denied']) && $_GET['denied'] == 1 )
            $this->redirect( "/admin/users/login/?denied=1" );
        else
            $this->redirect( "/admin/users/login" );
    }
}
